{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "dcc748a4-73fc-485c-a3d7-8c310c175dab",
   "metadata": {},
   "source": [
    "# Quantum Phase Estimation on a Grover Operator"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4207600f-f894-4d1a-975a-b2ea0f853de9",
   "metadata": {},
   "source": [
    "This notebook demonstrates the capability of Classiq's QPE function, focusing on a case where it is applied on a Grover Operator. This is the core of the Amplitude Estimation algorithm.\n",
    "\n",
    "The demonstration done for a toy model, where the Grover operator is constructed for a \"good state\" on 5 qubits $|\\psi\\rangle_{\\rm good}\\propto (|2\\rangle+|3\\rangle+|5\\rangle+|7\\rangle+|11\\rangle+|13\\rangle$)."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4961f424-89d2-4d7a-91a2-c5a6ad0dcf1d",
   "metadata": {},
   "source": [
    "## 1. Building a model with Classiq"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "52b8179b-ad39-469d-bc31-1d55fd5b0eb5",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-05-07T14:12:47.121384Z",
     "iopub.status.busy": "2024-05-07T14:12:47.118904Z",
     "iopub.status.idle": "2024-05-07T14:12:49.916143Z",
     "shell.execute_reply": "2024-05-07T14:12:49.915474Z"
    }
   },
   "outputs": [],
   "source": [
    "from classiq import (\n",
    "    CArray,\n",
    "    CInt,\n",
    "    H,\n",
    "    Output,\n",
    "    QArray,\n",
    "    QBit,\n",
    "    QNum,\n",
    "    U,\n",
    "    X,\n",
    "    Z,\n",
    "    allocate,\n",
    "    allocate_num,\n",
    "    control,\n",
    "    create_model,\n",
    "    hadamard_transform,\n",
    "    invert,\n",
    "    qfunc,\n",
    "    qpe,\n",
    "    repeat,\n",
    "    synthesize,\n",
    "    within_apply,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "ba549e78-d739-462a-ac65-c4ddb177de2c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-05-07T14:12:49.919339Z",
     "iopub.status.busy": "2024-05-07T14:12:49.918662Z",
     "iopub.status.idle": "2024-05-07T14:12:49.923108Z",
     "shell.execute_reply": "2024-05-07T14:12:49.922508Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "precisions: [1, 2, 3, 4, 5]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "NUM_QUBITS = 5\n",
    "ints_to_flip = [2, 3, 5, 7, 11, 13]\n",
    "precisions = [l for l in range(1, 6)]\n",
    "print(\"precisions:\", precisions)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "775e46ee-881d-4e32-a0dc-c481c93fdd1b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-05-07T14:12:49.925724Z",
     "iopub.status.busy": "2024-05-07T14:12:49.925255Z",
     "iopub.status.idle": "2024-05-07T14:12:49.928278Z",
     "shell.execute_reply": "2024-05-07T14:12:49.927843Z"
    }
   },
   "outputs": [],
   "source": [
    "transpilation_options = {\"classiq\": \"custom\", \"qiskit\": 3}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "63bf8ef7-fb6e-4139-9ece-eb3e499ad657",
   "metadata": {},
   "source": [
    "### 1.1 Constructing the Relevant Quantum Functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "4ed8f0be-9ab4-4f5d-a3ae-baefffd79cc2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-05-07T14:12:49.930851Z",
     "iopub.status.busy": "2024-05-07T14:12:49.930232Z",
     "iopub.status.idle": "2024-05-07T14:12:49.933884Z",
     "shell.execute_reply": "2024-05-07T14:12:49.933471Z"
    }
   },
   "outputs": [],
   "source": [
    "# qfunc for specific state preparation\n",
    "\n",
    "\n",
    "@qfunc\n",
    "def my_state_preparation(states: CArray[CInt], x: QNum, ind: QBit):\n",
    "\n",
    "    hadamard_transform(x)\n",
    "    repeat(states.len, lambda i: control(x == states[i], lambda: X(ind)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d53b8c19-f4c5-42a8-b600-9f84fdda8a31",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-05-07T14:12:49.936378Z",
     "iopub.status.busy": "2024-05-07T14:12:49.935806Z",
     "iopub.status.idle": "2024-05-07T14:12:49.940117Z",
     "shell.execute_reply": "2024-05-07T14:12:49.939693Z"
    }
   },
   "outputs": [],
   "source": [
    "# qfunc for grover\n",
    "import numpy as np\n",
    "\n",
    "\n",
    "@qfunc\n",
    "def my_grover(x: QNum, ind: QBit):\n",
    "    Z(ind)  # oracle for the good state\n",
    "    within_apply(\n",
    "        lambda: invert(lambda: my_state_preparation(ints_to_flip, x, ind)),\n",
    "        lambda: within_apply(\n",
    "            lambda: (X(ind), H(ind)), lambda: control(x == 0, lambda: X(ind))\n",
    "        ),  # zero oracle 1-|0><0|\n",
    "    )\n",
    "    U(0, 0, 0, np.pi, ind)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "9cd7c98f-3474-42fb-9c60-d37cdce0b057",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-05-07T14:12:49.942580Z",
     "iopub.status.busy": "2024-05-07T14:12:49.942018Z",
     "iopub.status.idle": "2024-05-07T14:12:49.945461Z",
     "shell.execute_reply": "2024-05-07T14:12:49.945033Z"
    }
   },
   "outputs": [],
   "source": [
    "from classiq import CustomHardwareSettings, Preferences\n",
    "\n",
    "preferences = Preferences(\n",
    "    custom_hardware_settings=CustomHardwareSettings(basis_gates=[\"cx\", \"u\"]),\n",
    "    transpilation_option=transpilation_options[\"classiq\"],\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "021b8f86-fcad-445b-b959-fd46aee827aa",
   "metadata": {},
   "source": [
    "### 1.2 Synthesizing with two Different Optimization Scenarios "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "e20fb039-d32a-4424-a0dc-191771412f51",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-05-07T14:12:49.947681Z",
     "iopub.status.busy": "2024-05-07T14:12:49.947324Z",
     "iopub.status.idle": "2024-05-07T14:12:49.950327Z",
     "shell.execute_reply": "2024-05-07T14:12:49.949927Z"
    }
   },
   "outputs": [],
   "source": [
    "from classiq import (\n",
    "    Constraints,\n",
    "    OptimizationParameter,\n",
    "    QuantumProgram,\n",
    "    set_constraints,\n",
    "    set_preferences,\n",
    "    synthesize,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "efdf8b75-0c59-4f34-9435-81ad633903a2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-05-07T14:12:49.952431Z",
     "iopub.status.busy": "2024-05-07T14:12:49.952249Z",
     "iopub.status.idle": "2024-05-07T14:25:13.126451Z",
     "shell.execute_reply": "2024-05-07T14:25:13.125577Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "classiq depths: [866, 2596, 6056, 12976, 26816]\n",
      "classiq cx_counts: [513, 1544, 3600, 7713, 15929]\n",
      "classiq widths: [6, 7, 8, 9, 10]\n",
      "classiq depths: [426, 1272, 2926, 6196, 13015]\n",
      "classiq cx_counts: [241, 722, 1664, 3523, 7384]\n",
      "classiq widths: [15, 18, 21, 24, 27]\n"
     ]
    }
   ],
   "source": [
    "classiq_depths_ae_opt_width = []\n",
    "classiq_cx_counts_ae_opt_width = []\n",
    "classiq_widths_ae_opt_width = []\n",
    "\n",
    "classiq_cx_counts_ae_opt_depth_max_width = []\n",
    "classiq_depths_ae_opt_depth_max_width = []\n",
    "classiq_widths_ae_opt_depth_max_width = []\n",
    "\n",
    "\n",
    "for precision in precisions:\n",
    "\n",
    "    @qfunc\n",
    "    def main():\n",
    "        ind = QBit(\"ind\")\n",
    "        allocate(1, ind)\n",
    "        x = QNum(\"x\")\n",
    "        allocate_num(NUM_QUBITS - 1, False, 0, x)\n",
    "        phase = QNum(\"phase\")\n",
    "        allocate_num(precision, False, precision, phase)\n",
    "        qpe(lambda: my_grover(x, ind), phase)\n",
    "\n",
    "    qmod = create_model(main)\n",
    "    qprog = synthesize(qmod)\n",
    "\n",
    "    # width optimization\n",
    "    constraints = Constraints(\n",
    "        optimization_parameter=OptimizationParameter.WIDTH,\n",
    "    )\n",
    "    qmod = set_constraints(qmod, constraints=constraints)\n",
    "    qmod = set_preferences(qmod, preferences=preferences)\n",
    "    quantum_program = synthesize(qmod)\n",
    "    circuit = QuantumProgram.from_qprog(quantum_program)\n",
    "    classiq_widths_ae_opt_width.append(circuit.data.width)\n",
    "    classiq_depths_ae_opt_width.append(circuit.transpiled_circuit.depth)\n",
    "    classiq_cx_counts_ae_opt_width.append(circuit.transpiled_circuit.count_ops[\"cx\"])\n",
    "\n",
    "    # Depth Optimization with a Constrained Width\n",
    "    constraints = Constraints(\n",
    "        optimization_parameter=OptimizationParameter.DEPTH,\n",
    "        max_width=15 + 3 * (precision - 1),  # setting some bound\n",
    "    )\n",
    "    qmod = set_constraints(qmod, constraints=constraints)\n",
    "    qmod = set_preferences(qmod, preferences=preferences)\n",
    "    quantum_program = synthesize(qmod)\n",
    "    circuit = QuantumProgram.from_qprog(quantum_program)\n",
    "    classiq_widths_ae_opt_depth_max_width.append(circuit.data.width)\n",
    "    classiq_depths_ae_opt_depth_max_width.append(circuit.transpiled_circuit.depth)\n",
    "    classiq_cx_counts_ae_opt_depth_max_width.append(\n",
    "        circuit.transpiled_circuit.count_ops[\"cx\"]\n",
    "    )\n",
    "\n",
    "print(\"classiq depths:\", classiq_depths_ae_opt_width)\n",
    "print(\"classiq cx_counts:\", classiq_cx_counts_ae_opt_width)\n",
    "print(\"classiq widths:\", classiq_widths_ae_opt_width)\n",
    "\n",
    "print(\"classiq depths:\", classiq_depths_ae_opt_depth_max_width)\n",
    "print(\"classiq cx_counts:\", classiq_cx_counts_ae_opt_depth_max_width)\n",
    "print(\"classiq widths:\", classiq_widths_ae_opt_depth_max_width)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "93bace92-54e9-4688-9d36-b292a94d94e0",
   "metadata": {},
   "source": [
    "## 2. Comparing to Qiskit Implementation"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "68268d2a-3aea-4df7-965d-0f1398bd2ea6",
   "metadata": {},
   "source": [
    "The qiskit data was generated using qiskit version 1.0.0. To run the qiskit code uncomment the commented cells below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "f837f4ad-f21a-4ae5-bfc9-45411fd77ef5",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-05-07T14:25:13.132110Z",
     "iopub.status.busy": "2024-05-07T14:25:13.131861Z",
     "iopub.status.idle": "2024-05-07T14:25:13.142905Z",
     "shell.execute_reply": "2024-05-07T14:25:13.136464Z"
    }
   },
   "outputs": [],
   "source": [
    "qiskit_depths_ae = [3094, 9262, 21596, 46254, 95560]\n",
    "qiskit_cx_counts_ae = [1712, 5130, 11958, 25604, 52884]\n",
    "qiskit_widths_ae = [6, 7, 8, 9, 10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "b89b9db3-6276-46cb-949b-ddeb60593c61",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-05-07T14:25:13.146628Z",
     "iopub.status.busy": "2024-05-07T14:25:13.146032Z",
     "iopub.status.idle": "2024-05-07T14:25:13.150702Z",
     "shell.execute_reply": "2024-05-07T14:25:13.150122Z"
    }
   },
   "outputs": [],
   "source": [
    "# from importlib.metadata import version\n",
    "# try:\n",
    "#     import qiskit\n",
    "#     if version('qiskit') != \"1.0.0\":\n",
    "#       !pip uninstall qiskit -y\n",
    "#       !pip install qiskit==1.0.0\n",
    "# except ImportError:\n",
    "#     !pip install qiskit==1.0.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "7bb63fe2-8006-433a-8a8f-0cf11f3e9efb",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-05-07T14:25:13.153961Z",
     "iopub.status.busy": "2024-05-07T14:25:13.153530Z",
     "iopub.status.idle": "2024-05-07T14:25:13.164663Z",
     "shell.execute_reply": "2024-05-07T14:25:13.163962Z"
    }
   },
   "outputs": [],
   "source": [
    "# import numpy as np\n",
    "# from qiskit import QuantumCircuit, QuantumRegister, transpile\n",
    "# from qiskit.circuit.library import GroverOperator, PhaseEstimation, XGate\n",
    "\n",
    "# # building the state preparation circuit, the last qubit is the indicator of good/bad state\n",
    "# state_preparation = QuantumCircuit(NUM_QUBITS)\n",
    "# for q in range(NUM_QUBITS - 1):\n",
    "#     state_preparation.h(q)\n",
    "\n",
    "# for states in states_to_flip:\n",
    "#     mcx = XGate().control(num_ctrl_qubits=NUM_QUBITS - 1, ctrl_state=states)\n",
    "#     state_preparation.append(mcx, [k for k in range(NUM_QUBITS)])\n",
    "\n",
    "# circuit = QuantumCircuit(NUM_QUBITS)\n",
    "# circuit.compose(state_preparation, [k for k in range(NUM_QUBITS)], inplace=True)\n",
    "\n",
    "# # building oracle\n",
    "# oracle = QuantumCircuit(NUM_QUBITS)\n",
    "# oracle.z(4)  # good state = last qubit is |1>\n",
    "\n",
    "# # building the grover operator\n",
    "# grover_op = GroverOperator(oracle, state_preparation=circuit, insert_barriers=True)\n",
    "\n",
    "\n",
    "# qiskit_depths_ae = []\n",
    "# qiskit_cx_counts_ae = []\n",
    "# qiskit_widths_ae = []\n",
    "# for precision in precisions:\n",
    "#     qpe_qc = PhaseEstimation(precision, circuit)\n",
    "#     transpiled_cir = transpile(\n",
    "#         qpe_qc,\n",
    "#         basis_gates=[\"u\", \"cx\"],\n",
    "#         optimization_level=transpilation_options[\"qiskit\"],\n",
    "#     )\n",
    "#     qiskit_depths_ae.append(transpiled_cir.depth())\n",
    "#     qiskit_cx_counts_ae.append(transpiled_cir.count_ops()[\"cx\"])\n",
    "#     qiskit_widths_ae.append(transpiled_cir.width())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2a6a95f9-7b7a-4b7e-b06e-015f06bc1419",
   "metadata": {},
   "source": [
    "## 3. Plotting the Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "4ba34314-8f97-4e24-a1bc-970b9d6ece85",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-05-07T14:25:13.168658Z",
     "iopub.status.busy": "2024-05-07T14:25:13.168153Z",
     "iopub.status.idle": "2024-05-07T14:25:13.859415Z",
     "shell.execute_reply": "2024-05-07T14:25:13.858738Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(4.8, 500.0, '(b)')"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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YrHw7LPP2nqorKw9UIsWLSI8PJxhw4Y16fH/+Mc/4uXlxbZt2+qF0PLyct5+++0G77WuDKwbSt544w1CQkKoqKhoUjua4rHHHkOv1/PBBx/Um6Sem5vLxx9/jIuLC48++qjD+8vLy3nvvffqHV+1ahUAd911Fx4eHrbj1pWBdV/n//73P0JCQmyrDQsLC5k8eTKjR49u0fdbiK7Ms1vt51X1f5cBoLLmuEc3x+ebQoKUsIWpjh6iQPths2bNGvz8/Jg9ezb//ve/SUlJYdeuXdx555188cUXfPjhh7ZaQbm5uXbDRllZWba/e3p68vTTTwNw33338c4773D8+HF+/PFHLr/8cvLytEn4JSUlZGVl2YWhF198kWeffZa9e/eSkpJCXFwcs2fPpqKigueeew4XFxfbtUlJScyaNYtNmzaRnJzM/v37efbZZ/n4448ZM2YM1157LaD9kKz7PPn5+WRlZdlC0z333MPMmTPZtWsXN910EwkJCaSkpPDhhx/y5JNPNtgz0ljW8FReXl4vSF155ZUYjUbKy8sd9kZZe04KCwttj5GVlUVJSQkAoaGhvPXWW+h0OmbNmsXatWtJTU3ll19+YebMmbbVgGc+Dmgr+oKCgjhw4ABbtmxh//79vPfee1x44YV4enravk5WWVlZtiHbM793Z157NuPGjePVV18lLy+PadOmsXHjRlJTU1m/fj2XXnopJSUlvPnmmw2G9tGjR/Phhx/y6quvkpiYyMGDB/nLX/5iq8l1ZukLPz8/hg8fzqlTp/jiiy84evQor732GmFhYbaViOvXrycuLo5du3Y5DPNCCPD0r+1pKs13fE1ZzXHf1ljncva6nuefpKQk5e/vry644AK7j6uuuqpZj9ealc1FrdTUVPWXv/xFRUVFKVdXV9WrVy919dVXqx07dthdFxkZaat4Xfejro8++kjFxsYqd3d35e7uroYOHapeeOEFNX/+fLt7rJXGDx8+rBYsWKBGjx6tfH19laurq4qMjFRXX311vWrkBQUF6v3331dXXXWVCg0NVUajUfXo0UONHj1arVy5UpWVldmutVZTP/MjKSnJdk1VVZVavHix6tevn3J1dVVBQUHqlltuUampqbb733vvvWZ9TfPz85XRaFRRUVEOz0+dOlUBKi4urt65zZs3O2x73Srv1uumTJmivL29laenpxo5cqR6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v19KBRQZGUlKSkq+32FJrFu3jqtXr/Ltt9+WUmVCVD4aWxcghKgYDAYDTzzxBOvWrePjjz9mypQp+Z738/MjKCiIZ555htDQUDp27EhMTAz169cHwN3d3fIAcHR0pGbNmpbta9WqRZcuXXB0dOTTTz8lPDycwMBAfHx80Ol06HS6Qre9m1qtLu23b1def/11Pv/8c8LDwx9oP0OGDGH16tX069evlCoTovKRI1JCCADeffdd1q1bR2hoaIEQdafAwECmT5/O9evXefrpp1EUpVivM3r0aADS0tJYs2ZNiWo9ePAgU6dOLdG2D4Phw4eze/du2rZt+0D78fPzY9u2bUybNq2UKhOi8pEgJYTg2rVrzJs3D4BJkybdd/6YMWNwdnZm//79/PLLL8V6rXr16ll+vnTpUrG2ValUREREUKVKFVxdXYu8nZ+fX771VVlZWbz11ls0atQIZ2dnqlevztChQzl37ly+7WbOnJlvu4iICGJiYggNDcXb2zvfeJ7c3Fzmz59Pu3btLEfoWrduzYcffkh2drbV+hRFITIykqCgIKpUqYKjoyN169Zl0KBBLF26lKysLACio6Pz1TN8+PAC+zp58iTDhw/H398fZ2dnfHx8CA4O5rPPPiMxMbHQ34k1BoOBxYsX07lzZzw8PHB1daV58+a888473Lx5M9/c7777rsAatqNHjzJw4EC8vLxwdXWlZ8+exMTEFOETE8J+SJASQvDrr7+SnZ2No6MjgYGB953v4eFBx44dAVi5cmWxXuvKlSuWn6tWrVq8Qkto7969JCQkWP45NDSUtLQ0fvrpJ44dO8a0adNYuXIl7du359ixY5Z5kyZNIiEhgaeffhqAP/74gwkTJvDqq69y4MABvv7663whJDMzk5CQECZNmkSPHj3Yvn0727dvp2/fvkybNo3AwEAyMjLy1WYymRg6dCh///vfqVevHps2beL48ePMnz+f48eP8+KLL/LWW28B0KVLFxISEpg/f77V9xkbG0ubNm04duwYn3/+OSdPnmT9+vX4+/szYcIE3njjjUJ/J3fLzs6mT58+jBs3ji5durBr1y4OHz7MyJEjmTt3Lu3ateP8+fOW+U899VS+dW5xcXGMHTuW1157jf3797Nw4UL27NlD7969ix2ghajQFCFEpRceHq4AStOmTYu8zZgxYxRAefTRR/ONT58+XQGU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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "classiq_color = \"#119DA4\"\n",
    "classiq_color_1 = \"#F43764\"\n",
    "qiskit_color = \"#bb8bff\"\n",
    "plt.rcParams[\"font.family\"] = \"serif\"\n",
    "plt.rc(\"savefig\", dpi=300)\n",
    "plt.rcParams[\"axes.linewidth\"] = 1\n",
    "plt.rcParams[\"xtick.major.size\"] = 5\n",
    "plt.rcParams[\"xtick.minor.size\"] = 5\n",
    "plt.rcParams[\"ytick.major.size\"] = 5\n",
    "plt.rcParams[\"ytick.minor.size\"] = 5\n",
    "\n",
    "(qiskit1,) = plt.semilogy(\n",
    "    precisions,\n",
    "    qiskit_depths_ae,\n",
    "    \"-s\",\n",
    "    label=\"qiskit\",\n",
    "    markerfacecolor=qiskit_color,\n",
    "    markeredgecolor=\"k\",\n",
    "    markersize=6,\n",
    "    markeredgewidth=1.5,\n",
    "    color=qiskit_color,\n",
    ")\n",
    "\n",
    "(classiq1,) = plt.semilogy(\n",
    "    precisions,\n",
    "    classiq_depths_ae_opt_width,\n",
    "    \"-D\",\n",
    "    label=\"classiq width opt.\",\n",
    "    markerfacecolor=classiq_color,\n",
    "    markeredgecolor=\"k\",\n",
    "    markersize=6.5,\n",
    "    markeredgewidth=1.5,\n",
    "    color=classiq_color,\n",
    ")\n",
    "\n",
    "(classiq2,) = plt.semilogy(\n",
    "    precisions,\n",
    "    classiq_depths_ae_opt_depth_max_width,\n",
    "    \"-o\",\n",
    "    label=\"classiq depth opt.\",\n",
    "    markerfacecolor=classiq_color_1,\n",
    "    markeredgecolor=\"k\",\n",
    "    markersize=7,\n",
    "    markeredgewidth=1.5,\n",
    "    linewidth=1.5,\n",
    "    color=classiq_color_1,\n",
    ")\n",
    "\n",
    "\n",
    "first_legend = plt.legend(\n",
    "    handles=[qiskit1, classiq1, classiq2], fontsize=16, loc=\"upper left\"\n",
    ")\n",
    "\n",
    "\n",
    "plt.ylabel(\"Depth\", fontsize=16)\n",
    "plt.xlabel(\"QPE-precision\", fontsize=16)\n",
    "plt.yticks(fontsize=16)\n",
    "plt.xticks(fontsize=16)\n",
    "plt.axis(ymin=3e2, ymax=5e5)\n",
    "plt.xticks(precisions)\n",
    "\n",
    "\n",
    "for x, y, num_qubits in zip(\n",
    "    precisions, classiq_depths_ae_opt_width, classiq_widths_ae_opt_width\n",
    "):\n",
    "    plt.text(x * 0.94, y * 1.2, str(num_qubits), fontsize=16, color=classiq_color)\n",
    "for x, y, num_qubits in zip(\n",
    "    precisions,\n",
    "    classiq_depths_ae_opt_depth_max_width,\n",
    "    classiq_widths_ae_opt_depth_max_width,\n",
    "):\n",
    "    plt.text(x * 0.96, y * 1.25, str(num_qubits), fontsize=16, color=classiq_color_1)\n",
    "for x, y, num_qubits in zip(precisions, qiskit_depths_ae, qiskit_widths_ae):\n",
    "    plt.text(x * 0.98, y * 1.2, str(num_qubits), fontsize=16, color=qiskit_color)\n",
    "plt.text(4.8, 5e2, \"(b)\", fontsize=16)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
